package com.ruoyi.system.service;

import com.ruoyi.common.core.domain.entity.Person;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.LoginSysUserDep;

import java.util.List;

/**
 * 基础人员Service接口
 * 
 * @author ess
 * @date 2021-10-14
 */
public interface IPersonService 
{
    /**
     * 查询基础人员
     * 
     * @param personId 基础人员主键
     * @return 基础人员
     */
    public Person selectPersonByPersonId(String personId);

    /**
     * 查询基础人员列表
     * 
     * @param person 基础人员
     * @return 基础人员集合
     */
    public List<Person> selectPersonList(Person person);

    /**
     * 新增基础人员
     * 
     * @param person 基础人员
     * @return 结果
     */
    public int insertPerson(Person person);

    /**
     * 修改基础人员
     * 
     * @param person 基础人员
     * @return 结果
     */
    public int updatePerson(Person person);

    /**
     * 批量删除基础人员
     * 
     * @param personIds 需要删除的基础人员主键集合
     * @return 结果
     */
    public int deletePersonByPersonIds(String[] personIds);

    /**
     * 删除基础人员信息
     * 
     * @param personId 基础人员主键
     * @return 结果
     */
    public int deletePersonByPersonId(String personId);

    /**
     * 根据姓名查询基础人员列表
     * @param personName
     * @return
     */
    List<Person> selectPersonListByPersonName(String personName);

    /**
     * 重置密码
     *
     * @param person  基础人员信息
     * @return 结果
     */
    int resetPwd(Person person);

    /**
     * 重置密码 个人中心
     *
     * @param userId 用户ID
     * @param password 密码
     * @return 结果
     */
    int resetUserPwd(Long userId, String password);


    /**
     * 校验人员编号是否唯一
     *
     * @param empNum 人员编号
     * @return 结果
     */
    String checkEmpNumUnique(String empNum);


    Person findPersonBySYS(String businessSys, String signUser);

    /**
     * 查询同一单位下的基础人员
     * @param personName
     * @param user
     * @return
     */
    List<Person> selectPersonWithSysDepListByPersonName(String personName, SysUser user);
}
